//https://www.luogu.com.cn/problem/P1028
//AC---打表法+动态规划
#include"iostream"
#include <array>
#include <numeric>
using namespace std;

//最大的输入数值
const int MAX=1000;
//给0留出了一个位置,所以给大小增加1
using RES_ARRAY=array<int,MAX+1>;


//编译期打表函数
//感谢c++17和c++20的常量运算,我们不用写复杂的模板元函数了,直接写constexpr/consteval即可
consteval RES_ARRAY build_array(){
	RES_ARRAY temp{0};
	temp[0]=0;temp[1]=1;
	//函数执行的核心逻辑,加 1 到 x/2 的所有值,然后再加 1 (即那个数本身)
	auto Func=[&temp](int x){
		return 1 + accumulate( temp.begin() , temp.begin() + (x/2) + 1 , 0 );
	};
	//从小向大打表
	for(int i=2;i<=MAX;++i){
		temp[i]=Func(i);
	}
	return temp;
}

//保存打表结果
constexpr RES_ARRAY CONST_TABLE=build_array();

int main(){
	int N;
	cin>>N;
	cout<<CONST_TABLE[N];
	cout<<"\n";
	for(int i=1;i<14;++i){
		cout<<CONST_TABLE[i]<<' ';
	}
	return 0;
}